package com.jdaoyun.result;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author niu
 */
@Data
@Accessors(chain = true)
public class R<T> {

    private int code;
    private String msg;
    private T data;

    /**
     * 查询成功响应
     *
     * @param data 数据
     */
    public static <T> R<T> ok(T data) {
        return new R<T>().setCode(0).setData(data);
    }

    /**
     * 失败响应
     *
     * @param msg 响应描述
     */
    public static <T> R<T> fail(String msg) {
        return new R<T>().setCode(-1).setMsg(msg);
    }

    /**
     * 异常响应
     *
     * @param msg 响应描述
     */
    public static <T> R<T> exception(String msg) {
        return new R<T>().setCode(-2).setMsg(msg);
    }

    /**
     * 是否成功
     *
     * @return boolean 0 成功 其他失败
     */
    public boolean isSuccess() {
        return code == 0;
    }

}
